const express = require('express') //1.引入express
const router = express.Router() //2.引入路由
const fs = require('fs')
const { db, genid } = require('../db/DbUtils') //引入雪花id和数据库
router.post('/rich_upload', async (req, res) => {
  if (!req.files) {
    //判断如果文件为空
    res.send({
      errno: 1, // 只要不等于 0 就行
      message: '失败信息',
    })
    return //文件不存在就直接返回
  }

  let files = req.files //前端发送的请求文件
  let ret_files = []
  for (let i of files) {
    // files.originalname文件原始的名字，字符串名.substring(从第几位开始提取)
    // lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置，
    // 等于0的时候,获取的整个文件名的全部,因为就是从0开始提取就是提取全部,()里面写从第几位开始提取
    let file_ext = i.originalname.substring(i.originalname.lastIndexOf('.') + 1)
    let file_name = genid.NextId() + '.' + file_ext // 随机文件名字

    // 修改名字 fs.renameSync( oldPath, newPath )，修改文件名字加移动文件
    fs.renameSync(
      process.cwd() + '/public/upload/temp/' + i.filename,
      process.cwd() + '/public/upload/' + file_name // process.cwd()返回运行当前脚本的工作目录的路径
    )
    ret_files.push('/upload/' + file_name)
  }
  res.send({
    errno: 0, // 注意：值是数字，不能是字符串
    data: {
      'url': ret_files[0], // 图片 src ，必须
    },
  })
})
module.exports = router //3.导出路由

// 这里属性写多了个空格，格式有问题，导致前端一直接收不到图片，
// 前端接收到图片之后，图片路径多了个% ，查了原因是少了个/
// 后端写接口的时候，没有测试接口的返回内容，也有可能应该是不小心改到了
